YES 1.933
H-Termination proof of /home/matraf/haskell/eval_FullyBlown_Fast/List.hs
H-Termination of the given Haskell-Program with start terms could successfully be proven:
↳ HASKELL
↳ BR
mainModule List
| ((isSuffixOf :: Eq a => [a] -> [a] -> Bool) :: Eq a => [a] -> [a] -> Bool) |
module List where
| import qualified Maybe import qualified Prelude
|
| isPrefixOf :: Eq a => [a] -> [a] -> Bool
isPrefixOf | [] _ | = | True |
isPrefixOf | _ [] | = | False |
isPrefixOf | (x : xs) (y : ys) | = | x == y && isPrefixOf xs ys |
|
| isSuffixOf :: Eq a => [a] -> [a] -> Bool
isSuffixOf | x y | = | reverse x `isPrefixOf` reverse y |
|
module Maybe where
| import qualified List import qualified Prelude
|
Replaced joker patterns by fresh variables and removed binding patterns.
↳ HASKELL
↳ BR
↳ HASKELL
↳ COR
mainModule List
| ((isSuffixOf :: Eq a => [a] -> [a] -> Bool) :: Eq a => [a] -> [a] -> Bool) |
module List where
| import qualified Maybe import qualified Prelude
|
| isPrefixOf :: Eq a => [a] -> [a] -> Bool
isPrefixOf | [] vw | = | True |
isPrefixOf | vx [] | = | False |
isPrefixOf | (x : xs) (y : ys) | = | x == y && isPrefixOf xs ys |
|
| isSuffixOf :: Eq a => [a] -> [a] -> Bool
isSuffixOf | x y | = | reverse x `isPrefixOf` reverse y |
|
module Maybe where
| import qualified List import qualified Prelude
|
Cond Reductions:
The following Function with conditions
is transformed to
undefined0 | True | = undefined |
undefined1 | | = undefined0 False |
↳ HASKELL
↳ BR
↳ HASKELL
↳ COR
↳ HASKELL
↳ Narrow
mainModule List
| (isSuffixOf :: Eq a => [a] -> [a] -> Bool) |
module List where
| import qualified Maybe import qualified Prelude
|
| isPrefixOf :: Eq a => [a] -> [a] -> Bool
isPrefixOf | [] vw | = | True |
isPrefixOf | vx [] | = | False |
isPrefixOf | (x : xs) (y : ys) | = | x == y && isPrefixOf xs ys |
|
| isSuffixOf :: Eq a => [a] -> [a] -> Bool
isSuffixOf | x y | = | reverse x `isPrefixOf` reverse y |
|
module Maybe where
| import qualified List import qualified Prelude
|
Haskell To QDPs
↳ HASKELL
↳ BR
↳ HASKELL
↳ COR
↳ HASKELL
↳ Narrow
↳ AND
↳ QDP
↳ QDPSizeChangeProof
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
Q DP problem:
The TRS P consists of the following rules:
new_primPlusNat(Succ(xy7800), Succ(xy5700000)) → new_primPlusNat(xy7800, xy5700000)
R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By using the subterm criterion [20] together with the size-change analysis [32] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs:
- new_primPlusNat(Succ(xy7800), Succ(xy5700000)) → new_primPlusNat(xy7800, xy5700000)
The graph contains the following edges 1 > 1, 2 > 2
↳ HASKELL
↳ BR
↳ HASKELL
↳ COR
↳ HASKELL
↳ Narrow
↳ AND
↳ QDP
↳ QDP
↳ QDPSizeChangeProof
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
Q DP problem:
The TRS P consists of the following rules:
new_primMulNat(Succ(xy54000), Succ(xy570000)) → new_primMulNat(xy54000, Succ(xy570000))
R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By using the subterm criterion [20] together with the size-change analysis [32] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs:
- new_primMulNat(Succ(xy54000), Succ(xy570000)) → new_primMulNat(xy54000, Succ(xy570000))
The graph contains the following edges 1 > 1, 2 >= 2
↳ HASKELL
↳ BR
↳ HASKELL
↳ COR
↳ HASKELL
↳ Narrow
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDPSizeChangeProof
↳ QDP
↳ QDP
↳ QDP
↳ QDP
Q DP problem:
The TRS P consists of the following rules:
new_primEqNat(Succ(xy5400), Succ(xy57000)) → new_primEqNat(xy5400, xy57000)
R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By using the subterm criterion [20] together with the size-change analysis [32] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs:
- new_primEqNat(Succ(xy5400), Succ(xy57000)) → new_primEqNat(xy5400, xy57000)
The graph contains the following edges 1 > 1, 2 > 2
↳ HASKELL
↳ BR
↳ HASKELL
↳ COR
↳ HASKELL
↳ Narrow
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDPSizeChangeProof
↳ QDP
↳ QDP
↳ QDP
Q DP problem:
The TRS P consists of the following rules:
new_esEs(@2(xy540, xy541), @2(xy5700, xy5701), app(app(ty_@2, cc), cd), ce) → new_esEs(xy540, xy5700, cc, cd)
new_esEs(@2(xy540, xy541), @2(xy5700, xy5701), app(ty_[], cf), ce) → new_esEs0(xy540, xy5700, cf)
new_esEs2(Just(xy540), Just(xy5700), app(app(app(ty_@3, bbb), bbc), bbd)) → new_esEs1(xy540, xy5700, bbb, bbc, bbd)
new_esEs1(@3(xy540, xy541, xy542), @3(xy5700, xy5701, xy5702), eh, app(app(app(ty_@3, gh), ha), hb), gf) → new_esEs1(xy541, xy5701, gh, ha, hb)
new_esEs(@2(xy540, xy541), @2(xy5700, xy5701), ba, app(ty_Maybe, bh)) → new_esEs2(xy541, xy5701, bh)
new_esEs1(@3(xy540, xy541, xy542), @3(xy5700, xy5701, xy5702), eh, app(app(ty_Either, hd), he), gf) → new_esEs3(xy541, xy5701, hd, he)
new_esEs1(@3(xy540, xy541, xy542), @3(xy5700, xy5701, xy5702), eh, app(app(ty_@2, gd), ge), gf) → new_esEs(xy541, xy5701, gd, ge)
new_esEs1(@3(xy540, xy541, xy542), @3(xy5700, xy5701, xy5702), eh, fa, app(app(ty_Either, gb), gc)) → new_esEs3(xy542, xy5702, gb, gc)
new_esEs1(@3(xy540, xy541, xy542), @3(xy5700, xy5701, xy5702), app(ty_[], hh), fa, gf) → new_esEs0(xy540, xy5700, hh)
new_esEs3(Right(xy540), Right(xy5700), bdb, app(app(ty_Either, beb), bec)) → new_esEs3(xy540, xy5700, beb, bec)
new_esEs1(@3(xy540, xy541, xy542), @3(xy5700, xy5701, xy5702), eh, fa, app(app(app(ty_@3, ff), fg), fh)) → new_esEs1(xy542, xy5702, ff, fg, fh)
new_esEs3(Right(xy540), Right(xy5700), bdb, app(app(app(ty_@3, bdf), bdg), bdh)) → new_esEs1(xy540, xy5700, bdf, bdg, bdh)
new_esEs3(Left(xy540), Left(xy5700), app(app(app(ty_@3, bcd), bce), bcf), bcb) → new_esEs1(xy540, xy5700, bcd, bce, bcf)
new_esEs2(Just(xy540), Just(xy5700), app(ty_Maybe, bbe)) → new_esEs2(xy540, xy5700, bbe)
new_esEs3(Left(xy540), Left(xy5700), app(app(ty_Either, bch), bda), bcb) → new_esEs3(xy540, xy5700, bch, bda)
new_esEs3(Left(xy540), Left(xy5700), app(app(ty_@2, bbh), bca), bcb) → new_esEs(xy540, xy5700, bbh, bca)
new_esEs0(:(xy540, xy541), :(xy5700, xy5701), app(app(ty_Either, ef), eg)) → new_esEs3(xy540, xy5700, ef, eg)
new_esEs1(@3(xy540, xy541, xy542), @3(xy5700, xy5701, xy5702), eh, fa, app(app(ty_@2, fb), fc)) → new_esEs(xy542, xy5702, fb, fc)
new_esEs(@2(xy540, xy541), @2(xy5700, xy5701), ba, app(app(app(ty_@3, be), bf), bg)) → new_esEs1(xy541, xy5701, be, bf, bg)
new_esEs1(@3(xy540, xy541, xy542), @3(xy5700, xy5701, xy5702), eh, fa, app(ty_[], fd)) → new_esEs0(xy542, xy5702, fd)
new_esEs1(@3(xy540, xy541, xy542), @3(xy5700, xy5701, xy5702), app(app(app(ty_@3, baa), bab), bac), fa, gf) → new_esEs1(xy540, xy5700, baa, bab, bac)
new_esEs(@2(xy540, xy541), @2(xy5700, xy5701), app(app(ty_Either, dd), de), ce) → new_esEs3(xy540, xy5700, dd, de)
new_esEs3(Left(xy540), Left(xy5700), app(ty_Maybe, bcg), bcb) → new_esEs2(xy540, xy5700, bcg)
new_esEs1(@3(xy540, xy541, xy542), @3(xy5700, xy5701, xy5702), eh, app(ty_Maybe, hc), gf) → new_esEs2(xy541, xy5701, hc)
new_esEs3(Left(xy540), Left(xy5700), app(ty_[], bcc), bcb) → new_esEs0(xy540, xy5700, bcc)
new_esEs2(Just(xy540), Just(xy5700), app(app(ty_@2, bag), bah)) → new_esEs(xy540, xy5700, bag, bah)
new_esEs(@2(xy540, xy541), @2(xy5700, xy5701), ba, app(app(ty_Either, ca), cb)) → new_esEs3(xy541, xy5701, ca, cb)
new_esEs3(Right(xy540), Right(xy5700), bdb, app(ty_[], bde)) → new_esEs0(xy540, xy5700, bde)
new_esEs0(:(xy540, xy541), :(xy5700, xy5701), app(app(app(ty_@3, eb), ec), ed)) → new_esEs1(xy540, xy5700, eb, ec, ed)
new_esEs1(@3(xy540, xy541, xy542), @3(xy5700, xy5701, xy5702), eh, app(ty_[], gg), gf) → new_esEs0(xy541, xy5701, gg)
new_esEs2(Just(xy540), Just(xy5700), app(ty_[], bba)) → new_esEs0(xy540, xy5700, bba)
new_esEs1(@3(xy540, xy541, xy542), @3(xy5700, xy5701, xy5702), eh, fa, app(ty_Maybe, ga)) → new_esEs2(xy542, xy5702, ga)
new_esEs(@2(xy540, xy541), @2(xy5700, xy5701), ba, app(ty_[], bd)) → new_esEs0(xy541, xy5701, bd)
new_esEs(@2(xy540, xy541), @2(xy5700, xy5701), app(ty_Maybe, dc), ce) → new_esEs2(xy540, xy5700, dc)
new_esEs(@2(xy540, xy541), @2(xy5700, xy5701), ba, app(app(ty_@2, bb), bc)) → new_esEs(xy541, xy5701, bb, bc)
new_esEs0(:(xy540, xy541), :(xy5700, xy5701), app(ty_Maybe, ee)) → new_esEs2(xy540, xy5700, ee)
new_esEs1(@3(xy540, xy541, xy542), @3(xy5700, xy5701, xy5702), app(ty_Maybe, bad), fa, gf) → new_esEs2(xy540, xy5700, bad)
new_esEs1(@3(xy540, xy541, xy542), @3(xy5700, xy5701, xy5702), app(app(ty_Either, bae), baf), fa, gf) → new_esEs3(xy540, xy5700, bae, baf)
new_esEs3(Right(xy540), Right(xy5700), bdb, app(ty_Maybe, bea)) → new_esEs2(xy540, xy5700, bea)
new_esEs0(:(xy540, xy541), :(xy5700, xy5701), app(app(ty_@2, dg), dh)) → new_esEs(xy540, xy5700, dg, dh)
new_esEs(@2(xy540, xy541), @2(xy5700, xy5701), app(app(app(ty_@3, cg), da), db), ce) → new_esEs1(xy540, xy5700, cg, da, db)
new_esEs0(:(xy540, xy541), :(xy5700, xy5701), app(ty_[], ea)) → new_esEs0(xy540, xy5700, ea)
new_esEs1(@3(xy540, xy541, xy542), @3(xy5700, xy5701, xy5702), app(app(ty_@2, hf), hg), fa, gf) → new_esEs(xy540, xy5700, hf, hg)
new_esEs2(Just(xy540), Just(xy5700), app(app(ty_Either, bbf), bbg)) → new_esEs3(xy540, xy5700, bbf, bbg)
new_esEs0(:(xy540, xy541), :(xy5700, xy5701), df) → new_esEs0(xy541, xy5701, df)
new_esEs3(Right(xy540), Right(xy5700), bdb, app(app(ty_@2, bdc), bdd)) → new_esEs(xy540, xy5700, bdc, bdd)
R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By using the subterm criterion [20] together with the size-change analysis [32] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs:
- new_esEs0(:(xy540, xy541), :(xy5700, xy5701), app(ty_Maybe, ee)) → new_esEs2(xy540, xy5700, ee)
The graph contains the following edges 1 > 1, 2 > 2, 3 > 3
- new_esEs0(:(xy540, xy541), :(xy5700, xy5701), app(app(ty_@2, dg), dh)) → new_esEs(xy540, xy5700, dg, dh)
The graph contains the following edges 1 > 1, 2 > 2, 3 > 3, 3 > 4
- new_esEs0(:(xy540, xy541), :(xy5700, xy5701), app(app(app(ty_@3, eb), ec), ed)) → new_esEs1(xy540, xy5700, eb, ec, ed)
The graph contains the following edges 1 > 1, 2 > 2, 3 > 3, 3 > 4, 3 > 5
- new_esEs2(Just(xy540), Just(xy5700), app(ty_Maybe, bbe)) → new_esEs2(xy540, xy5700, bbe)
The graph contains the following edges 1 > 1, 2 > 2, 3 > 3
- new_esEs2(Just(xy540), Just(xy5700), app(app(ty_@2, bag), bah)) → new_esEs(xy540, xy5700, bag, bah)
The graph contains the following edges 1 > 1, 2 > 2, 3 > 3, 3 > 4
- new_esEs2(Just(xy540), Just(xy5700), app(app(app(ty_@3, bbb), bbc), bbd)) → new_esEs1(xy540, xy5700, bbb, bbc, bbd)
The graph contains the following edges 1 > 1, 2 > 2, 3 > 3, 3 > 4, 3 > 5
- new_esEs0(:(xy540, xy541), :(xy5700, xy5701), app(app(ty_Either, ef), eg)) → new_esEs3(xy540, xy5700, ef, eg)
The graph contains the following edges 1 > 1, 2 > 2, 3 > 3, 3 > 4
- new_esEs2(Just(xy540), Just(xy5700), app(app(ty_Either, bbf), bbg)) → new_esEs3(xy540, xy5700, bbf, bbg)
The graph contains the following edges 1 > 1, 2 > 2, 3 > 3, 3 > 4
- new_esEs2(Just(xy540), Just(xy5700), app(ty_[], bba)) → new_esEs0(xy540, xy5700, bba)
The graph contains the following edges 1 > 1, 2 > 2, 3 > 3
- new_esEs1(@3(xy540, xy541, xy542), @3(xy5700, xy5701, xy5702), eh, app(ty_Maybe, hc), gf) → new_esEs2(xy541, xy5701, hc)
The graph contains the following edges 1 > 1, 2 > 2, 4 > 3
- new_esEs1(@3(xy540, xy541, xy542), @3(xy5700, xy5701, xy5702), eh, fa, app(ty_Maybe, ga)) → new_esEs2(xy542, xy5702, ga)
The graph contains the following edges 1 > 1, 2 > 2, 5 > 3
- new_esEs1(@3(xy540, xy541, xy542), @3(xy5700, xy5701, xy5702), app(ty_Maybe, bad), fa, gf) → new_esEs2(xy540, xy5700, bad)
The graph contains the following edges 1 > 1, 2 > 2, 3 > 3
- new_esEs1(@3(xy540, xy541, xy542), @3(xy5700, xy5701, xy5702), eh, app(app(ty_@2, gd), ge), gf) → new_esEs(xy541, xy5701, gd, ge)
The graph contains the following edges 1 > 1, 2 > 2, 4 > 3, 4 > 4
- new_esEs1(@3(xy540, xy541, xy542), @3(xy5700, xy5701, xy5702), eh, fa, app(app(ty_@2, fb), fc)) → new_esEs(xy542, xy5702, fb, fc)
The graph contains the following edges 1 > 1, 2 > 2, 5 > 3, 5 > 4
- new_esEs1(@3(xy540, xy541, xy542), @3(xy5700, xy5701, xy5702), app(app(ty_@2, hf), hg), fa, gf) → new_esEs(xy540, xy5700, hf, hg)
The graph contains the following edges 1 > 1, 2 > 2, 3 > 3, 3 > 4
- new_esEs1(@3(xy540, xy541, xy542), @3(xy5700, xy5701, xy5702), eh, app(app(app(ty_@3, gh), ha), hb), gf) → new_esEs1(xy541, xy5701, gh, ha, hb)
The graph contains the following edges 1 > 1, 2 > 2, 4 > 3, 4 > 4, 4 > 5
- new_esEs1(@3(xy540, xy541, xy542), @3(xy5700, xy5701, xy5702), eh, fa, app(app(app(ty_@3, ff), fg), fh)) → new_esEs1(xy542, xy5702, ff, fg, fh)
The graph contains the following edges 1 > 1, 2 > 2, 5 > 3, 5 > 4, 5 > 5
- new_esEs1(@3(xy540, xy541, xy542), @3(xy5700, xy5701, xy5702), app(app(app(ty_@3, baa), bab), bac), fa, gf) → new_esEs1(xy540, xy5700, baa, bab, bac)
The graph contains the following edges 1 > 1, 2 > 2, 3 > 3, 3 > 4, 3 > 5
- new_esEs1(@3(xy540, xy541, xy542), @3(xy5700, xy5701, xy5702), eh, app(app(ty_Either, hd), he), gf) → new_esEs3(xy541, xy5701, hd, he)
The graph contains the following edges 1 > 1, 2 > 2, 4 > 3, 4 > 4
- new_esEs1(@3(xy540, xy541, xy542), @3(xy5700, xy5701, xy5702), eh, fa, app(app(ty_Either, gb), gc)) → new_esEs3(xy542, xy5702, gb, gc)
The graph contains the following edges 1 > 1, 2 > 2, 5 > 3, 5 > 4
- new_esEs1(@3(xy540, xy541, xy542), @3(xy5700, xy5701, xy5702), app(app(ty_Either, bae), baf), fa, gf) → new_esEs3(xy540, xy5700, bae, baf)
The graph contains the following edges 1 > 1, 2 > 2, 3 > 3, 3 > 4
- new_esEs1(@3(xy540, xy541, xy542), @3(xy5700, xy5701, xy5702), app(ty_[], hh), fa, gf) → new_esEs0(xy540, xy5700, hh)
The graph contains the following edges 1 > 1, 2 > 2, 3 > 3
- new_esEs1(@3(xy540, xy541, xy542), @3(xy5700, xy5701, xy5702), eh, fa, app(ty_[], fd)) → new_esEs0(xy542, xy5702, fd)
The graph contains the following edges 1 > 1, 2 > 2, 5 > 3
- new_esEs1(@3(xy540, xy541, xy542), @3(xy5700, xy5701, xy5702), eh, app(ty_[], gg), gf) → new_esEs0(xy541, xy5701, gg)
The graph contains the following edges 1 > 1, 2 > 2, 4 > 3
- new_esEs(@2(xy540, xy541), @2(xy5700, xy5701), ba, app(ty_Maybe, bh)) → new_esEs2(xy541, xy5701, bh)
The graph contains the following edges 1 > 1, 2 > 2, 4 > 3
- new_esEs(@2(xy540, xy541), @2(xy5700, xy5701), app(ty_Maybe, dc), ce) → new_esEs2(xy540, xy5700, dc)
The graph contains the following edges 1 > 1, 2 > 2, 3 > 3
- new_esEs3(Left(xy540), Left(xy5700), app(ty_Maybe, bcg), bcb) → new_esEs2(xy540, xy5700, bcg)
The graph contains the following edges 1 > 1, 2 > 2, 3 > 3
- new_esEs3(Right(xy540), Right(xy5700), bdb, app(ty_Maybe, bea)) → new_esEs2(xy540, xy5700, bea)
The graph contains the following edges 1 > 1, 2 > 2, 4 > 3
- new_esEs0(:(xy540, xy541), :(xy5700, xy5701), app(ty_[], ea)) → new_esEs0(xy540, xy5700, ea)
The graph contains the following edges 1 > 1, 2 > 2, 3 > 3
- new_esEs0(:(xy540, xy541), :(xy5700, xy5701), df) → new_esEs0(xy541, xy5701, df)
The graph contains the following edges 1 > 1, 2 > 2, 3 >= 3
- new_esEs(@2(xy540, xy541), @2(xy5700, xy5701), app(app(ty_@2, cc), cd), ce) → new_esEs(xy540, xy5700, cc, cd)
The graph contains the following edges 1 > 1, 2 > 2, 3 > 3, 3 > 4
- new_esEs(@2(xy540, xy541), @2(xy5700, xy5701), ba, app(app(ty_@2, bb), bc)) → new_esEs(xy541, xy5701, bb, bc)
The graph contains the following edges 1 > 1, 2 > 2, 4 > 3, 4 > 4
- new_esEs3(Left(xy540), Left(xy5700), app(app(ty_@2, bbh), bca), bcb) → new_esEs(xy540, xy5700, bbh, bca)
The graph contains the following edges 1 > 1, 2 > 2, 3 > 3, 3 > 4
- new_esEs3(Right(xy540), Right(xy5700), bdb, app(app(ty_@2, bdc), bdd)) → new_esEs(xy540, xy5700, bdc, bdd)
The graph contains the following edges 1 > 1, 2 > 2, 4 > 3, 4 > 4
- new_esEs(@2(xy540, xy541), @2(xy5700, xy5701), ba, app(app(app(ty_@3, be), bf), bg)) → new_esEs1(xy541, xy5701, be, bf, bg)
The graph contains the following edges 1 > 1, 2 > 2, 4 > 3, 4 > 4, 4 > 5
- new_esEs(@2(xy540, xy541), @2(xy5700, xy5701), app(app(app(ty_@3, cg), da), db), ce) → new_esEs1(xy540, xy5700, cg, da, db)
The graph contains the following edges 1 > 1, 2 > 2, 3 > 3, 3 > 4, 3 > 5
- new_esEs(@2(xy540, xy541), @2(xy5700, xy5701), app(app(ty_Either, dd), de), ce) → new_esEs3(xy540, xy5700, dd, de)
The graph contains the following edges 1 > 1, 2 > 2, 3 > 3, 3 > 4
- new_esEs(@2(xy540, xy541), @2(xy5700, xy5701), ba, app(app(ty_Either, ca), cb)) → new_esEs3(xy541, xy5701, ca, cb)
The graph contains the following edges 1 > 1, 2 > 2, 4 > 3, 4 > 4
- new_esEs(@2(xy540, xy541), @2(xy5700, xy5701), app(ty_[], cf), ce) → new_esEs0(xy540, xy5700, cf)
The graph contains the following edges 1 > 1, 2 > 2, 3 > 3
- new_esEs(@2(xy540, xy541), @2(xy5700, xy5701), ba, app(ty_[], bd)) → new_esEs0(xy541, xy5701, bd)
The graph contains the following edges 1 > 1, 2 > 2, 4 > 3
- new_esEs3(Right(xy540), Right(xy5700), bdb, app(app(app(ty_@3, bdf), bdg), bdh)) → new_esEs1(xy540, xy5700, bdf, bdg, bdh)
The graph contains the following edges 1 > 1, 2 > 2, 4 > 3, 4 > 4, 4 > 5
- new_esEs3(Left(xy540), Left(xy5700), app(app(app(ty_@3, bcd), bce), bcf), bcb) → new_esEs1(xy540, xy5700, bcd, bce, bcf)
The graph contains the following edges 1 > 1, 2 > 2, 3 > 3, 3 > 4, 3 > 5
- new_esEs3(Right(xy540), Right(xy5700), bdb, app(app(ty_Either, beb), bec)) → new_esEs3(xy540, xy5700, beb, bec)
The graph contains the following edges 1 > 1, 2 > 2, 4 > 3, 4 > 4
- new_esEs3(Left(xy540), Left(xy5700), app(app(ty_Either, bch), bda), bcb) → new_esEs3(xy540, xy5700, bch, bda)
The graph contains the following edges 1 > 1, 2 > 2, 3 > 3, 3 > 4
- new_esEs3(Left(xy540), Left(xy5700), app(ty_[], bcc), bcb) → new_esEs0(xy540, xy5700, bcc)
The graph contains the following edges 1 > 1, 2 > 2, 3 > 3
- new_esEs3(Right(xy540), Right(xy5700), bdb, app(ty_[], bde)) → new_esEs0(xy540, xy5700, bde)
The graph contains the following edges 1 > 1, 2 > 2, 4 > 3
↳ HASKELL
↳ BR
↳ HASKELL
↳ COR
↳ HASKELL
↳ Narrow
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDPSizeChangeProof
↳ QDP
↳ QDP
Q DP problem:
The TRS P consists of the following rules:
new_isPrefixOf(:(xy530, xy531), :(xy5710, xy5711), ba) → new_isPrefixOf(xy531, xy5711, ba)
R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By using the subterm criterion [20] together with the size-change analysis [32] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs:
- new_isPrefixOf(:(xy530, xy531), :(xy5710, xy5711), ba) → new_isPrefixOf(xy531, xy5711, ba)
The graph contains the following edges 1 > 1, 2 > 2, 3 >= 3
↳ HASKELL
↳ BR
↳ HASKELL
↳ COR
↳ HASKELL
↳ Narrow
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDPSizeChangeProof
↳ QDP
Q DP problem:
The TRS P consists of the following rules:
new_isPrefixOf0(xy54, xy53, xy57, :(xy5610, xy5611), ba) → new_isPrefixOf0(xy54, xy53, new_flip(xy57, xy5610, ba), xy5611, ba)
The TRS R consists of the following rules:
new_flip(xy53, xy54, ba) → :(xy54, xy53)
The set Q consists of the following terms:
new_flip(x0, x1, x2)
We have to consider all minimal (P,Q,R)-chains.
By using the subterm criterion [20] together with the size-change analysis [32] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs:
- new_isPrefixOf0(xy54, xy53, xy57, :(xy5610, xy5611), ba) → new_isPrefixOf0(xy54, xy53, new_flip(xy57, xy5610, ba), xy5611, ba)
The graph contains the following edges 1 >= 1, 2 >= 2, 4 > 4, 5 >= 5
↳ HASKELL
↳ BR
↳ HASKELL
↳ COR
↳ HASKELL
↳ Narrow
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ QDPSizeChangeProof
Q DP problem:
The TRS P consists of the following rules:
new_isPrefixOf1(xy53, xy54, :(xy550, xy551), xy56, ba) → new_isPrefixOf1(new_flip(xy53, xy54, ba), xy550, xy551, xy56, ba)
The TRS R consists of the following rules:
new_flip(xy53, xy54, ba) → :(xy54, xy53)
The set Q consists of the following terms:
new_flip(x0, x1, x2)
We have to consider all minimal (P,Q,R)-chains.
By using the subterm criterion [20] together with the size-change analysis [32] we have proven that there are no infinite chains for this DP problem. From the DPs we obtained the following set of size-change graphs:
- new_isPrefixOf1(xy53, xy54, :(xy550, xy551), xy56, ba) → new_isPrefixOf1(new_flip(xy53, xy54, ba), xy550, xy551, xy56, ba)
The graph contains the following edges 3 > 2, 3 > 3, 4 >= 4, 5 >= 5